package com.morgan.basemodule.app

import android.app.Application
import android.content.Context
import androidx.multidex.MultiDex
import com.alibaba.android.arouter.launcher.ARouter
import com.morgan.basemodule.BuildConfig
import com.morgan.basemodule.activity.ActManager

/**
 *description：
 *<br>author：caowugao
 *<br>time：2021/4/1 0001 18:56
 */
open class CommonApp : Application() {

    override fun attachBaseContext(base: Context?) {
        super.attachBaseContext(base)
        MultiDex.install(this)
    }

    override fun onCreate() {
        super.onCreate()
        app = this
        ActManager.getInstance().init(this)
        initARouter()
    }

    companion object {
        val DEBUG = BuildConfig.DEBUG
        lateinit var app : CommonApp
    }

    private fun initARouter() {
        if (DEBUG) {           // 这两行必须写在init之前，否则这些配置在init过程中将无效
            ARouter.openLog();     // 打印日志
            ARouter.openDebug();   // 开启调试模式(如果在InstantRun模式下运行，必须开启调试模式！线上版本需要关闭,否则有安全风险)
        }
        ARouter.init(this); // 尽可能早，推荐在Application中初始化

    }
}